﻿using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using Business;

namespace GestorEventos
{
    /// <summary>
    /// Summary description for EventoWeb
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class EventoWeb : System.Web.Services.WebService
    {

        public struct EventoS
        {
            public String nomeEvento;
            public DateTime dataInicio;
            public DateTime dataFim;
            public String descricaoEvento;
            public float precoEvento;
            public String categoria;
            public String organizador;
            public String cartaz;

            public String linkEvento;
            public int nPessoas;
            public int nComentarios;
        }

        [WebMethod]
        public bool getPresencaUser(int eventId, int userId)
        {
            Presenca p = new Presenca();
            return p.getPresencaUser(eventId, userId);
        }

        [WebMethod]
        public EventoS[] getTopTen()
        {
            ListaEvento le = new ListaEvento();
            le = le.getTopTen();
            EventoS[] eventos = new EventoS[le.getListaEventos().Count];
            int count = 0;
            foreach (Evento e in le.getListaEventos())
            {
                eventos[count].nomeEvento = e.getNome();
                eventos[count].dataInicio = e.getDataInicio();
                eventos[count].dataFim = e.getDataFim();
                eventos[count].descricaoEvento = e.getDescricao();
                eventos[count].precoEvento = e.getPreco();
                eventos[count].categoria = e.getCategoria();
                eventos[count].organizador = e.getOrg(e.getOrganizadorID());
                eventos[count].cartaz = e.getCartaz();
                eventos[count].linkEvento = e.getLink();
                eventos[count].nPessoas = e.getNPessoas();
                eventos[count].nComentarios = e.getNComentarios();
                count++;
            }

            return eventos;
        }

        [WebMethod]
        public EventoS[] getTopTenCom()
        {
            ListaEvento le = new ListaEvento();
            le = le.getTopTenCom();
            EventoS[] eventos = new EventoS[le.getListaEventos().Count];
            int count = 0;
            foreach (Evento e in le.getListaEventos())
            {
                eventos[count].nomeEvento = e.getNome();
                eventos[count].dataInicio = e.getDataInicio();
                eventos[count].dataFim = e.getDataFim();
                eventos[count].descricaoEvento = e.getDescricao();
                eventos[count].precoEvento = e.getPreco();
                eventos[count].categoria = e.getCategoria();
                eventos[count].organizador = e.getOrg(e.getOrganizadorID());
                eventos[count].cartaz = e.getCartaz();
                eventos[count].linkEvento = e.getLink();
                eventos[count].nPessoas = e.getNPessoas();
                eventos[count].nComentarios = e.getNComentarios();
                count++;
            }

            return eventos;
        }
    }
}
